﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Biblioteca.classesBasicas.pessoa;
using Biblioteca.classesBasicas.equipamento;
using Biblioteca.fachada;

namespace Desktop.views.cruds.crudsJogo.crudPartida
{
    public partial class EquipamentoCliente : Form
    {
        private AtribuicoesPartida atribuicoesPartida;
        private Cliente cliente;
        private Arma arma;
        private Capacete capacete;
        private Cilindro cilindro;
        private Colete colete;
        private List<Arma> listaArmas;
        private List<Capacete> listaCapacetes;
        private List<Cilindro> listaCilindros;
        private List<Colete> listaColetes;
        private Fachada fachada = new Fachada();
        private Responsavel responsavel = new Responsavel();
        private bool condicao;
                

        public EquipamentoCliente(AtribuicoesPartida atribuicoesPartida, Cliente cliente)
        {
            this.atribuicoesPartida = atribuicoesPartida;
            this.cliente = cliente;

            atribuicoesPartida.Hide();
            InitializeComponent();
        }
        
        private void buttonConfirmar_Click(object sender, EventArgs e)
        {
            condicao = validacaoEquipamento();

            if (condicao == true) 
            {
                atribuicoesPartida.adicionarListaResponsaveis(responsavel);
                atribuicoesPartida.Show();
                this.Dispose();
            }
            
        }

        private void buttonVoltar_Click(object sender, EventArgs e)
        {
            atribuicoesPartida.Show();
            this.Dispose();
        }

        private void EquipamentoCliente_FormClosed(object sender, FormClosedEventArgs e)
        {
            atribuicoesPartida.Show();
            this.Dispose();
        }

        private void EquipamentoCliente_Load(object sender, EventArgs e)
        {
            carregarGridViewEquipamentoClienteArma();
            carregarGridViewEquipamentoClienteCapacete();
            carregarGridViewEquipamentoClienteCilindro();
            carregarGridViewEquipamentoClienteColete();
        }


        private void dataGridViewEquipamentoClienteArma_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            carregarGridViewEquipamentoClienteArma();

            if (e.RowIndex > -1)
            {
                DataGridViewRow row = this.dataGridViewEquipamentoClienteArma.Rows[e.RowIndex];

                arma = new Arma();

                arma.Id = row.Cells[0].Value.ToString();
                arma.Nome = row.Cells[1].Value.ToString();
                arma.Tipo = row.Cells[2].Value.ToString();
                arma.Marca = row.Cells[3].Value.ToString();
                arma.Valor = row.Cells[4].Value.ToString();

                row.DefaultCellStyle.BackColor = Color.LightBlue;

                //AlterarRemoverArma alterar = new AlterarRemoverArma(this, arma);
                //alterar.ShowDialog();
            }
        }


        public void carregarGridViewEquipamentoClienteArma()
        {
            listaArmas = fachada.listarArma();

            DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
            columnHeaderStyle.BackColor = Color.Aqua;
            columnHeaderStyle.Font =
                new Font("Verdana", 10, FontStyle.Bold);
            this.dataGridViewEquipamentoClienteArma.ColumnHeadersDefaultCellStyle =
                columnHeaderStyle;

            dataGridViewEquipamentoClienteArma.DataSource = listaArmas;

            this.dataGridViewEquipamentoClienteArma.Columns[0].HeaderText = "ID";
            this.dataGridViewEquipamentoClienteArma.Columns[1].HeaderText = "NOME";
            this.dataGridViewEquipamentoClienteArma.Columns[2].HeaderText = "TIPO";
            this.dataGridViewEquipamentoClienteArma.Columns[3].HeaderText = "MARCA";
            this.dataGridViewEquipamentoClienteArma.Columns[4].HeaderText = "VALOR";
        }



        private void dataGridViewEquipamentoClienteCapacete_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            carregarGridViewEquipamentoClienteCapacete();
            
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = this.dataGridViewEquipamentoClienteCapacete.Rows[e.RowIndex];

                capacete = new Capacete();

                capacete.Id = row.Cells[0].Value.ToString();
                capacete.Nome = row.Cells[1].Value.ToString();
                capacete.Tipo = row.Cells[2].Value.ToString();
                capacete.Marca = row.Cells[3].Value.ToString();
                capacete.Valor = row.Cells[4].Value.ToString();

                row.DefaultCellStyle.BackColor = Color.LightBlue;

                //AlterarRemoverCapacete alterar = new AlterarRemoverCapacete(this, capacete);
                //alterar.ShowDialog();
            }
        }


        public void carregarGridViewEquipamentoClienteCapacete()
        {
            listaCapacetes = fachada.listarCapacete();

            DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
            columnHeaderStyle.BackColor = Color.Aqua;
            columnHeaderStyle.Font =
                new Font("Verdana", 10, FontStyle.Bold);
            this.dataGridViewEquipamentoClienteCapacete.ColumnHeadersDefaultCellStyle =
                columnHeaderStyle;

            dataGridViewEquipamentoClienteCapacete.DataSource = listaCapacetes;

            this.dataGridViewEquipamentoClienteCapacete.Columns[0].HeaderText = "ID";
            this.dataGridViewEquipamentoClienteCapacete.Columns[1].HeaderText = "NOME";
            this.dataGridViewEquipamentoClienteCapacete.Columns[2].HeaderText = "TIPO";
            this.dataGridViewEquipamentoClienteCapacete.Columns[3].HeaderText = "MARCA";
            this.dataGridViewEquipamentoClienteCapacete.Columns[4].HeaderText = "VALOR";
        }


        private void dataGridViewEquipamentoClienteCilindro_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            carregarGridViewEquipamentoClienteCilindro();

            if (e.RowIndex > -1)
            {
                DataGridViewRow row = this.dataGridViewEquipamentoClienteCilindro.Rows[e.RowIndex];

                cilindro = new Cilindro();

                cilindro.Id = row.Cells[0].Value.ToString();
                cilindro.Nome = row.Cells[1].Value.ToString();
                cilindro.Tipo = row.Cells[2].Value.ToString();
                cilindro.Marca = row.Cells[3].Value.ToString();
                cilindro.Valor = row.Cells[4].Value.ToString();

                row.DefaultCellStyle.BackColor = Color.LightBlue;

                //AlterarRemoverCilindro alterar = new AlterarRemoverCilindro(this, cilindro);
                //alterar.ShowDialog();
            }
        }


        public void carregarGridViewEquipamentoClienteCilindro()
        {
            listaCilindros = fachada.listarCilindro();

            DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
            columnHeaderStyle.BackColor = Color.Aqua;
            columnHeaderStyle.Font =
                new Font("Verdana", 10, FontStyle.Bold);
            this.dataGridViewEquipamentoClienteCilindro.ColumnHeadersDefaultCellStyle =
                columnHeaderStyle;

            dataGridViewEquipamentoClienteCilindro.DataSource = listaCilindros;

            this.dataGridViewEquipamentoClienteCilindro.Columns[0].HeaderText = "ID";
            this.dataGridViewEquipamentoClienteCilindro.Columns[1].HeaderText = "NOME";
            this.dataGridViewEquipamentoClienteCilindro.Columns[2].HeaderText = "TIPO";
            this.dataGridViewEquipamentoClienteCilindro.Columns[3].HeaderText = "MARCA";
            this.dataGridViewEquipamentoClienteCilindro.Columns[4].HeaderText = "VALOR";
        }

        private void dataGridViewEquipamentoClienteColete_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            carregarGridViewEquipamentoClienteColete();
            
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = this.dataGridViewEquipamentoClienteColete.Rows[e.RowIndex];

                colete = new Colete();

                colete.Id = row.Cells[0].Value.ToString();
                colete.Nome = row.Cells[1].Value.ToString();
                colete.Tipo = row.Cells[2].Value.ToString();
                colete.Marca = row.Cells[3].Value.ToString();
                colete.Valor = row.Cells[4].Value.ToString();

                row.DefaultCellStyle.BackColor = Color.LightBlue;

                //AlterarRemoverColete alterar = new AlterarRemoverColete(this, colete);
                //alterar.ShowDialog();
            }
        }


        public void carregarGridViewEquipamentoClienteColete()
        {
            listaColetes = fachada.listarColete();

            DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
            columnHeaderStyle.BackColor = Color.Aqua;
            columnHeaderStyle.Font =
                new Font("Verdana", 10, FontStyle.Bold);
            this.dataGridViewEquipamentoClienteColete.ColumnHeadersDefaultCellStyle =
                columnHeaderStyle;

            dataGridViewEquipamentoClienteColete.DataSource = listaColetes;

            this.dataGridViewEquipamentoClienteColete.Columns[0].HeaderText = "ID";
            this.dataGridViewEquipamentoClienteColete.Columns[1].HeaderText = "NOME";
            this.dataGridViewEquipamentoClienteColete.Columns[2].HeaderText = "TIPO";
            this.dataGridViewEquipamentoClienteColete.Columns[3].HeaderText = "MARCA";
            this.dataGridViewEquipamentoClienteColete.Columns[4].HeaderText = "VALOR";
        }


        private bool validacaoEquipamento() 
        {
            if (arma == null) 
            {
                MessageBox.Show("Arma não foi selecionada", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (capacete == null) 
            {
                MessageBox.Show("Capacete não foi selecionado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (cilindro == null) 
            {
                MessageBox.Show("Cilindro não foi selecionado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (colete == null)
            {
                MessageBox.Show("Colete não foi selecionado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if ((arma != null)&&(capacete != null)&&(cilindro != null)&&(colete != null))
            {
                responsavel.Cliente = cliente;
                responsavel.Equipamento = new Equipamento();
                //responsavel.Equipamento.Arma = new Arma();
                responsavel.Equipamento.Arma = arma;
                //responsavel.Equipamento.Capacete = new Capacete();
                responsavel.Equipamento.Capacete = capacete;
                //responsavel.Equipamento.Cilindro = new Cilindro();
                responsavel.Equipamento.Cilindro = cilindro;
                //responsavel.Equipamento.Colete = new Colete();
                responsavel.Equipamento.Colete = colete;

                return true;
            }

            return false;
        }        

    }
}
